home *** CD-ROM | disk | FTP | other *** search
- /*******************************************************************
- *******************************************************************
- ** Routinen aus Treiber.c (c)'93 m.pristovsek **
- ** Diese Routinen sind in TREIBER.C und FAST_DVI.S definiert **
- *******************************************************************
- *******************************************************************/
-
-
- /*******************************************************************
- * DIE Arbeitsroutine im eigentlichen Modul (als Parametercheck!) *
- * Diese Routine ist druckerspezifisch *
- *******************************************************************
- * Sie gibt das Handle der Zwischendatei zurück, oder -1, wenn sie *
- * selber für den Druck sorgt (wie beim SLM804 und JP350ws) *
- * Ist der Rückgabewert >0, dann wird diese Datei an die parallele *
- * Schnittstelle geschickt. *
- *******************************************************************
- * Man sollte immer testen, ob es u.U. mit Zwischendatei nicht *
- * schneller oder genauso schnell ist, denn dann kann man viel *
- * Arbeit sparen, man muß sich nicht mehr um die Ausgabe kümmern *
- * Die Breite einer Bitmap in Bytes erhält man durch: *
- * ((weite+15)/16)*2 *
- *******************************************************************
- * GROSSE VARIABLEN AUSSERHALB ALLER FUNKTIONEN UND STATISCH *
- * DEKLARIEREN, SONST GIBT ES U.U. STACKÜBERLAUF! *
- *******************************************************************/
- int drucke( char *bitmap, long weite, long hoehe, long h_dpi, long v_dpi );
-
-
- /*******************************************************************
- * Öffnet eine temporäre Datei mit der Endung "drucker_ext" zum *
- * Zwischenspeichern und liefert Handle zurück. (Fehler <0) *
- * Dieses Handle sollte die Funktion "drucke" (s.o.) zurückgeben. *
- *******************************************************************
- * "drucker_ext": String mit druckerspezifische Endung *
- * Bei Epson9 z.B. "n9" *
- *******************************************************************
- * Wird der Treiber zum Drucken in Datei aufgerufen, wird das *
- * Handle der angesprochenen Datei zurückgeliefert und die Daten *
- * an diese angehängt *
- *******************************************************************/
- int get_tempfile( char *drucker_ext );
- /* 6.2.93 */
-
-
-
- /*==================================================================*
- " Folgende Routinen sind allgemein zur Eingrenzung des Bereiches, "
- " der gedruckt werden soll, interessant "
- *==================================================================*/
-
- /*******************************************************************
- * Ist diese Zeile Leerzeile? (d.h. sind "offset" Bytes==0?) *
- *******************************************************************
- * "ptr": Zeiger auf Bitmap "offset": Breite in Bytes *
- *******************************************************************/
- int ist_leerzeile( char *ptr, long offset );
- /* 16.1.93 */
-
-
- /*******************************************************************
- * Sind in den nächsten #next-Zeilen keine Zeichen? D.h. damit kann*
- * man z.B den linken Rand bestimmen. *
- *******************************************************************
- * "ptr": Zeiger auf Bitmap "offset": Breite in Bytes *
- * "next": Anzahl zu testender Zeilen *
- *******************************************************************/
- int ist_next_leer( char *ptr, long offset, long next );
- /* 16.1.93 */
-
-
- /*******************************************************************
- * Bitmap zeilenweise um 90 Grad drehen (in DREHE_90) *
- *******************************************************************
- * Dabei ist "qweite" die Breite der Bitmap *
- * und "zweite" die Höhe der (Bitmap+7)/8 *
- * ==> "ziel" muß mindestens "zweite"-Bytes groß sein! *
- *******************************************************************/
- void drehe_90( char *quelle, char *ziel, long qweite, long zweite, long x );
-
-
- /*******************************************************************
- * Bitmap für Nadeln drehen (in BLOCK_BY) *
- *******************************************************************
- * ende: Breite des Bereiches IN BYTES *
- * offset: Weite einer Bitmapzeile *
- * modus: Wieviel Bytes pro Zeile (9:1, 24:3, Jet:1-6) *
- *******************************************************************/
- void block_it( char *dest, char *src, short ende, long offset, short mode );
- /* 10.8.93 */
-
-
- /*==================================================================*
- " Folgende Routinen sind nur bei eigener Druckausgabe interressant "
- " Als Beispiel siehe HP.C, denn dort wird für das Drucken in eine "
- " Datei extra eine andere Routine aufgerufen: Nur geht es so halt "
- " VIEL schneller "
- *==================================================================*/
-
- /*******************************************************************
- * Versucht Drucker zu Öffnen und die Semaphore 'PRN:' zu bekommen *
- * Leider kann man die Datei "U:\dev\prn" nicht verriegeln; deshalb*
- * wurde die Semaphore eingeführt. *
- *******************************************************************
- * Der Rückgabewert ist >0 (das Handle der Druckerdatei) oder im *
- * Fehlerfall negativ *
- *******************************************************************/
- int open_printer( void );
- /* 6.2.93 */
-
-
- /*******************************************************************
- * Gibt die "len" Daten ab "blk" an Spooler weiter (umgeht GEMDOS) *
- * Gleichzeitig sorgt diese Funktion für das Blinken *+*+*+ ... *
- *******************************************************************/
- long print_block( long len, char *blk );
- /* 22.1.93 */
-
-
- /*******************************************************************
- * Leert Spoolerspeicher, MUSS vor dem Druckende aufgerufen werden!*
- *******************************************************************/
- void flush_block( void );
- /* 23.1.93 */
-
-